package principal;

import java.io.File;
import visualisationRadar.VisualisationRadar;
/**
 * Classe permettant de fabriquer les différentes échelles.
 * @author laurent & kevin
 *
 */
public class EchelleFactory {
	/**
	 * Instancie les attributs statiques que sont les échelles.
	 */
	public EchelleFactory() {
		File fiColor = new File(VisualisationRadar.repertoireRessources,
				"rr_full.col");
		
		echelleQualite = new Echelle(fiColor);
		echelleQualite.setUnite("Indice qualité en %") ;
		echelleQualite.setTableauValeurs(new double [] {0,10,20,30,40,50,60,66,70,76,80,84,88,92,96,100}) ;
		echelleRR = new Echelle(fiColor);
		echelleRR.setUnite("Lame d'eau en mm") ;
		echelleRR.setTableauValeurs(new double[] {0.0,0.03,0.05,0.1,0.2,0.3,0.4,.5,.6,1.0,3.0,5.0,6.0,15.0,30.0,50.0}) ;
		echelleRRCumul = new Echelle(fiColor);
		echelleRRCumul.setUnite("Cumul de précipitations en mm") ;
		echelleRRCumul.setTableauValeurs(new double [] {.0,.5,1.,2.,5.,10.,15.,20.,25.,30.,40.,50.,60.,80.,100.,150.}) ;
	}
	
	/**
	 * Renvoie un objet statique dérivant d'{@link Echelle}
	 * @param type Entier définissant le type d'image.
	 * @return {@link EchelleQualite} ou {@link EchelleRR} ou {@link EchelleRRCumul}
	 * 
	 */
	public static Echelle getEchelle(int type) {
		switch (type) {
		case VisualisationRadar.RR:
			return echelleRR;
		case VisualisationRadar.QUALITE:
			return echelleQualite;
		case VisualisationRadar.RRcumul:
			return echelleRRCumul;
		case VisualisationRadar.QUALITEcumul:
			return echelleQualite;
		default:
			return null;
		}
	}

	private static Echelle echelleQualite, echelleRR, echelleRRCumul;
}
